package com.wjy.common.result;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * @author ybxxszl
 * @desc 结果建立
 * @data 2019年4月12日
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ResultBuilder {

    // 状态码
    private Integer code;

    // 数据
    private Object data;

    // 消息
    private String msg;

    /**
     * @param code
     * @param data
     * @param msg
     * @return Return
     * @date 2018年10月21日
     * @author ybxxszl
     * @description 建立自定义返回
     */
    public static ResultBuilder build(Integer code, Object data, String msg) {

        return new ResultBuilder(code, data, msg);

    }

    /**
     * @param code
     * @param msg
     * @return Return
     * @date 2018年10月21日
     * @author ybxxszl
     * @description 建立自定义返回
     */
    public static ResultBuilder build(Integer code, String msg) {

        return new ResultBuilder(code, null, msg);

    }

    /**
     * @param data
     * @param msg
     * @return ReturnBuilder
     * @date 2018年10月21日
     * @author ybxxszl
     * @description 成功
     */
    public static ResultBuilder success(Object data, String msg) {

        return new ResultBuilder(200, data, msg);

    }

    /**
     * @param data
     * @return ReturnBuilder
     * @date 2018年4月3日
     * @author ybxxszl
     * @description 成功
     */
    public static ResultBuilder success(Object data) {

        return new ResultBuilder(200, data, null);

    }

    /**
     * @param msg
     * @return ReturnBuilder
     * @date 2018年4月3日
     * @author ybxxszl
     * @description 成功
     */
    public static ResultBuilder success(String msg) {

        return new ResultBuilder(200, null, msg);

    }

    /**
     * @param e
     * @return ReturnBuilder
     * @date 2019年1月7日
     * @author ybxxszl
     * @description 失败
     */
    public static ResultBuilder error(Exception e) {

        return new ResultBuilder(500, null, e.getMessage());

    }

}
